package com.r2coding.ent.api;

import com.r2coding.common.util.Result;
import com.r2coding.ent.entity.AlbumEntity;
import com.r2coding.ent.service.AlbumService;
import com.r2coding.ent.vo.req.AlbumReqVo;
import com.r2coding.ent.vo.resp.AlbumDetailRespVo;
import com.r2coding.ent.vo.resp.AlbumResp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author:98k灬
 * @since:2022/06/20 20:04
 **/
@RestController
@RequestMapping("/api/album")
public class ApiAlbumController {
    @Autowired
    AlbumService albumService;

    /**
     * 分页条件查询相册列表
     *
     * @param req 查询条件
     * @return 相册列表
     */
    @PostMapping("/getAll")
    public Result getAll(@RequestBody AlbumReqVo req) {
        AlbumResp info = albumService.getAll(req);
        return Result.ok(info);
    }

    /**
     * 移动照片到其他相册时 查询相册列表
     *
     * @param albumId 排除的相册
     * @return 统一响应体
     */
    @GetMapping("/getAlbumList/{albumId}")
    public Result getAlbumList(@PathVariable("albumId") Integer albumId) {
        List<AlbumEntity> info = albumService.getAlbumList(albumId);
        return Result.ok(info);
    }

    /**
     * 根据相册id查询详情
     *
     * @param id 相册id
     * @return 详情
     */
    @GetMapping("/info/{id}")
    public Result info(@PathVariable("id") Integer id) {
        AlbumDetailRespVo resp = albumService.getAlbumInfo(id);
        return Result.ok(resp);
    }

    /**
     * 获取已公开的相册列表
     *
     * @param req 请求
     * @return 统一响应体
     */
    @PostMapping("/getPublicAlbum")
    public Result getPublicAlbum(@RequestBody AlbumReqVo req) {
        AlbumResp resp = albumService.getPublicAlbum(req);
        return Result.ok(resp);
    }

}
